package cn.fl.ass.transform;

import java.util.ArrayList;
import java.util.List;

import cn.cmm.base.framework.utils.CollectionUtils;
import cn.fl.ass.vo.AssVfInfoVO;
import fl.ass.facade.dto.AssVfInfoDTO;


/**
 * @Description: 资产核销信息表 转换器
 * @Description: VO是客户端传递数据到服务端进行转换的数据
 * @Description: VO转换数据变成DTO传递到服务端
 * @Description: VO不能在服务端出现
 */
public class AssVfInfoVOTransform {

    /**
     * DTO 转  VO
     *
     * @param dto AssVfInfoDTO
     * @return AssVfInfoVO
     */
    public static AssVfInfoVO baseToVO(AssVfInfoDTO dto) {
        AssVfInfoVO vo = null;
        if (dto != null) {
            vo = new AssVfInfoVO();
            vo.setId(dto.getId());
            vo.setCstId(dto.getCstId());//客户ID
            vo.setCstNm(dto.getCstNm());//客户名称
            vo.setIdtyNum(dto.getIdtyNum());//证件号码
            vo.setCntNo(dto.getCntNo());//合同号
            vo.setPaySchId(dto.getPaySchId());//支付表ID
            vo.setPaySchNo(dto.getPaySchNo());//支付表编号
            vo.setPaySchStsCd(dto.getPaySchStsCd());//支付表状态（PRJ0037）
            vo.setVfStsCd(dto.getVfStsCd());//核销状态
            vo.setVfReason(dto.getVfReason());//核销原因
            vo.setVfHdlWay(dto.getVfHdlWay());//后续处理方式
            vo.setVfAmt(dto.getVfAmt());//核销金额
            vo.setBreakAmt(dto.getBreakAmt());//违约金
            vo.setOvdDay(dto.getOvdDay());//逾期天数
            vo.setOvdAmt(dto.getOvdAmt());//逾期金额
            vo.setOvdRent(dto.getOvdRent());//逾期租金
            vo.setOvdItr(dto.getOvdItr());//逾期利息
            vo.setOvdPntItr(dto.getOvdPntItr());//逾期罚息
            vo.setIsDel(dto.getIsDel());//是否删除（0：否；1：是）

            vo.setCrtTm(dto.getCrtTm());//创建时间
            vo.setCrtUsrId(dto.getCrtUsrId());//创建人
            vo.setMdfTm(dto.getMdfTm());//修改时间
            vo.setMdfUsrId(dto.getMdfUsrId());//修改人

            vo.setVfStsCdNm(dto.getVfStsCdNm());

            vo.setPrdStsCdNm(dto.getPrdStsCdNm());
        }
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo AssVfInfoVO
     * @return AssVfInfoDTO
     */
    public static AssVfInfoDTO baseToDTO(AssVfInfoVO vo) {
        AssVfInfoDTO dto = null;
        if (vo != null) {
            dto = new AssVfInfoDTO();
            dto.setId(vo.getId());
            dto.setCstId(vo.getCstId());//客户ID
            dto.setCstNm(vo.getCstNm());//客户名称
            dto.setIdtyNum(vo.getIdtyNum());//证件号码
            dto.setCntNo(vo.getCntNo());//合同号
            dto.setPaySchId(vo.getPaySchId());//支付表ID
            dto.setPaySchNo(vo.getPaySchNo());//支付表编号
            dto.setPaySchStsCd(vo.getPaySchStsCd());//支付表状态（PRJ0037）
            dto.setVfStsCd(vo.getVfStsCd());//核销状态
            dto.setVfReason(vo.getVfReason());//核销原因
            dto.setVfHdlWay(vo.getVfHdlWay());//后续处理方式
            dto.setVfAmt(vo.getVfAmt());//核销金额
            dto.setBreakAmt(vo.getBreakAmt());//违约金
            dto.setOvdDay(vo.getOvdDay());//逾期天数
            dto.setOvdAmt(vo.getOvdAmt());//逾期金额
            dto.setOvdRent(vo.getOvdRent());//逾期租金
            dto.setOvdItr(vo.getOvdItr());//逾期利息
            dto.setOvdPntItr(vo.getOvdPntItr());//逾期罚息
            dto.setIsDel(vo.getIsDel());//是否删除（0：否；1：是）

            dto.setCrtTm(vo.getCrtTm());//创建时间
            dto.setCrtUsrId(vo.getCrtUsrId());//创建人
            dto.setMdfTm(vo.getMdfTm());//修改时间
            dto.setMdfUsrId(vo.getMdfUsrId());//修改人
            dto.setVfStsCdNm(vo.getVfStsCdNm());

            dto.setPrdStsCdNm(vo.getPrdStsCdNm());
        }
        return dto;
    }

    /**
     * DTO 转  VO
     *
     * @param dto AssVfInfoDTO
     * @return AssVfInfoVO
     */
    public static AssVfInfoVO toVO(AssVfInfoDTO dto) {
        AssVfInfoVO vo = baseToVO(dto);
        //设置自定义扩展属性
        return vo;
    }

    /**
     * VO 转 DTO
     *
     * @param vo AssVfInfoVO
     * @return AssVfInfoDTO
     */
    public static AssVfInfoDTO toDTO(AssVfInfoVO vo) {
        AssVfInfoDTO dto = baseToDTO(vo);
        //设置自定义扩展属性
        return dto;
    }

    /**
     * DTO集合 转 VO集合
     *
     * @param list
     * @return List<AssVfInfoVO>
     */
    public static List<AssVfInfoVO> toVOList(List<AssVfInfoDTO> list) {
        List<AssVfInfoVO> voList = new ArrayList<AssVfInfoVO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (AssVfInfoDTO dto : list) {
                voList.add(toVO(dto));
            }
        }
        return voList;
    }

    /**
     * VO集合 转 DTO集合
     *
     * @param list List<AssVfInfoVO>
     * @return List<AssVfInfoDTO>
     */
    public static List<AssVfInfoDTO> toDTOList(List<AssVfInfoVO> list) {
        List<AssVfInfoDTO> dtoList = new ArrayList<AssVfInfoDTO>();
        if (CollectionUtils.isNotEmpty(list)) {
            for (AssVfInfoVO vo : list) {
                dtoList.add(toDTO(vo));
            }
        }
        return dtoList;
    }
}
